From: Jo-Philipp Wich Date: Sat, 21 Sep 2019 08:19:22 +0000 (+0200) Subject: luci-base: luci.js: improve XHR issue diagnostics X-Git-Url: http://git.openwrt.org/%22https:/collectd.org//%22/%22https:/collectd.org/%22?a=commitdiff_plain;h=afeacdc7df181a592bea2109497400427e6471be;p=project%2Fluci.git luci-base: luci.js: improve XHR issue diagnostics Differentiate between request timeouts and other error reasons. Signed-off-by: Jo-Philipp Wich --- diff --git a/modules/luci-base/htdocs/luci-static/resources/luci.js b/modules/luci-base/htdocs/luci-static/resources/luci.js index af2b179ce3..1d349ebc17 100644 --- a/modules/luci-base/htdocs/luci-static/resources/luci.js +++ b/modules/luci-base/htdocs/luci-static/resources/luci.js @@ -399,17 +399,21 @@ }, handleReadyStateChange: function(resolveFn, rejectFn, ev) { - var xhr = this.xhr; + var xhr = this.xhr, + duration = Date.now() - this.start; if (xhr.readyState !== 4) return; if (xhr.status === 0 && xhr.statusText === '') { - rejectFn.call(this, new Error('XHR request aborted by browser')); + if (duration >= this.timeout) + rejectFn.call(this, new Error('XHR request timed out')); + else + rejectFn.call(this, new Error('XHR request aborted by browser')); } else { var response = new Response( - xhr, xhr.responseURL || this.url, Date.now() - this.start); + xhr, xhr.responseURL || this.url, duration); Promise.all(Request.interceptors.map(function(fn) { return fn(response) })) .then(resolveFn.bind(this, response))